import http from '@/utils/http';

/**
 * 管理员踢掉成员
 * @param {Long} groupId 群组ID
 * @param {Long} memberId 成员ID
 */
export function kickMember(groupId, memberId) {
  return http.delete(`/group-members/${groupId}/${memberId}`);
}

/**
 * 管理员撤回群消息
 * @param {Long} groupId 群组ID
 * @param {Long} messageId 消息ID
 */
export function revokeMessage(groupId, messageId) {
  return http.delete(`/group-members/${groupId}/${messageId}`);
}

/**
 * 邀请用户进群（支持多个用户）
 * @param {Long} groupId 群组ID
 * @param {Array<Long>} userIds 被邀请的用户ID列表
 * @returns 
 */
export function inviteUsers(groupId, userIds) {
  return http.post(`/group-members/invite/${groupId}`, userIds);
}

/**
 * 邀请用户进群
 * @param {Long} groupId 群组ID
 * @param {Long} userId 被邀请用户ID
 */
export function inviteUser(groupId, userId) {
  return http.post(`/group-members/invite/${groupId}/${userId}`);
}

/**
 * 用户退出群组
 * @param {Long} groupId 群组ID
 */
export function exitGroup(groupId) {
  return http.delete(`/group-members/${groupId}`);
}

/**
 * 用户同意进入群组
 * @param {Long} groupId 群组ID
 */
export function agreeGroup(groupId) {
  return http.post(`/group-members/agree/${groupId}`);
}

/**
 * 用户拒绝进入群组
 * @param {Object} groupId
 */
export function refuseGroup(groupId) {
  return http.delete(`/group-members/refuse/${groupId}`);
}

/**
 * 获取某个群组的用户id集合
 * @param {Object} groupId
 */
export function getMembers(groupId) {
	return http.get(`/group-members/list/${groupId}`);
}